6 #ifndef _CFEXPCALCULATION_H_ 7 #define _CFEXPCALCULATION_H_ 16 #define STABILITY_SAFETY_FACTOR 0.96 // safety factor for stability control 18 #define DEFAULT_TIME_STEP 0 // default initial time step 33 using t_Searcher = std::function<t_SearchResult(t_SearchInput & min_bound, t_SearchInput & max_bound)>;
35 : _fe_model(model), _geom_map_updater(updater), _geom_map_searcher(searcher), _result_exporter(exporter) { }
41 virtual bool CheckEnd (
size_t thread_id) = 0;
62 std::function<void()> _geom_map_updater;
81 std::function<
void()> updater,
t_Searcher searcher,
bool network =
false)
91 virtual bool CheckEnd (
size_t thread_id)
override;
97 virtual bool TrySaveResults (
size_t thread_id,
bool forced =
false)
override;
106 bool _is_network_calc;
115 #endif // !_CFEXPCALCULATION_H_ #define GET_MAX_FLT_VAL(type)
Definition: FEXPCommon.h:205
virtual size_t SimulationTimeIncrement(size_t thread_id) override
It sets the numeber of an time step increment.
Definition: FEXPCalculation.cpp:50
virtual bool CheckEnd(size_t thread_id) override
It checks the end of numerical simulation.
Definition: FEXPCalculation.cpp:70
Ptr< ICFEXPDataModelContIntf > get_model()
Definition: FEXPCalculation.h:56
t_SearchResult search_close_nodes(t_SearchInput min, t_SearchInput max)
Definition: FEXPCalculation.h:58
virtual void GlobalToLocalTransformation(size_t thread_id) override
It computes transformation from a global frame to a local frame of FEs.
Definition: FEXPCalculation.cpp:212
virtual size_t SimulationTimeIncrement(size_t thread_id)=0
virtual void CalculateNewGeometry(size_t thread_id) override
It computes the new geometry (update of model geometry).
Definition: FEXPCalculation.cpp:198
virtual void PrepareDataForNewTimeLevel(size_t thread_id) override
It prepares the data for the new time increment (set to default state).
Definition: FEXPCalculation.cpp:93
virtual void GlobalToLocalTransformation(size_t thread_id)=0
virtual void SetNewTimeStep(t_fexpcommon_ct dt)=0
virtual void PrintOutResults(size_t thread_id) override
It prints out appropriate result data from numerical simulation to console window.
Definition: FEXPCalculation.cpp:254
CFEXPCalculation(Ptr< ICFEXPDataModelContIntf > model, Ptr< ICFEXPResultExport > exporter, std::function< void()> updater, t_Searcher searcher, bool network=false)
Definition: FEXPCalculation.h:80
Definition: FEXPCommon.h:276
double t_fexpcommon_ct
Definition: FEXPCommon.h:120
It represents the class implementing the explicit computation.
Definition: FEXPCalculation.h:76
const std::vector< t_fexpcommon_ct > t_SearchInput
Definition: FEXPCalculation.h:31
Ptr< ICFEXPResultExport > get_result_exporter()
Definition: FEXPCalculation.h:59
virtual void CalculateForces(size_t thread_id) override
It computes forces (internal, external, contact).
Definition: FEXPCalculation.cpp:122
virtual void StabilityControl(size_t thread_id)=0
virtual void PrintOutResults(size_t thread_id)=0
virtual void StabilityControl(size_t thread_id) override
It check the stability of an explicit numerical integration of equation of motion (computes stabil ti...
Definition: FEXPCalculation.cpp:162
void save_results_and_export(size_t thread_id, Ptr< ICFEXPDataModelContIntf > reslt_cont)
Definition: FEXPCalculation.cpp:281
virtual void CalculateForces(size_t thread_id)=0
virtual void UpdateModelMapping(size_t thread_id) override
It updates the map of FE mesh for detection of contact.
Definition: FEXPCalculation.cpp:113
void update_geometry_map()
Definition: FEXPCalculation.h:57
virtual bool ClearResults(size_t thread_id) override
It clears memory with the current results.
Definition: FEXPCalculation.cpp:274
virtual bool TrySaveResults(size_t thread_id, bool forced=false) override
It saves the resulting simulation data for the current simulation time.
Definition: FEXPCalculation.cpp:225
virtual void CalculateNewGeometry(size_t thread_id)=0
virtual ~ICFEXPExplicitCalcBase()
Definition: FEXPCalculation.h:36
#define FEXPCOMMON_DEFAULT_VALUE
Definition: FEXPCommon.h:179
virtual bool CheckEnd(size_t thread_id)=0
ICFEXPExplicitCalcBase(Ptr< ICFEXPDataModelContIntf > model, Ptr< ICFEXPResultExport > exporter, std::function< void()> updater, t_Searcher searcher)
Definition: FEXPCalculation.h:34
virtual bool TrySaveResults(size_t thread_id, bool forced)=0
virtual void UpdateModelMapping(size_t thread_id)=0
virtual t_fexpcommon_ct GetCalculatedCriticTimeStep()=0
static std::string GetCalcBehavOutString(Ptr< ICFEXPElementNodeBase > node, size_t dof)
It composes formated output string for the monitoring of the FEXP solver behaviour.
Definition: FEXPCalculation.cpp:12
virtual bool ClearResults(size_t thread_id)=0
std::function< t_SearchResult(t_SearchInput &min_bound, t_SearchInput &max_bound)> t_Searcher
Definition: FEXPCalculation.h:33
virtual t_fexpcommon_ct GetCalculatedCriticTimeStep() override
It gives computed minimal time step.
Definition: FEXPCalculation.cpp:179
virtual void SetNewTimeStep(t_fexpcommon_ct dt) override
It sets the time step.
Definition: FEXPCalculation.cpp:188
It represents the base class interface for explicit computation.
Definition: FEXPCalculation.h:28
virtual void PrepareDataForNewTimeLevel(size_t thread_id)=0